From dfd53f76baf85c6dadaacbcfd5f2786cf4cacf73 Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 28 Feb 2006 11:41:54 +0100 Subject: [PATCH] Fix tools Makefiles to respect CFLAGS. Disable stack-smash protection when building vmxassist/hvmloader. Signed-off-by: Keir Fraser --- tools/firmware/hvmloader/Makefile | 10 +++++++--- tools/firmware/vgabios/Makefile | 2 -- tools/firmware/vmxassist/Makefile | 11 +++++++---- tools/ioemu/Makefile | 5 ++++- tools/ioemu/target-i386-dm/Makefile | 7 ++++--- tools/tests/Makefile | 9 ++++----- 6 files changed, 26 insertions(+), 18 deletions(-) diff --git a/tools/firmware/hvmloader/Makefile b/tools/firmware/hvmloader/Makefile index c23698e775..421224c60a 100644 --- a/tools/firmware/hvmloader/Makefile +++ b/tools/firmware/hvmloader/Makefile @@ -19,7 +19,7 @@ # XEN_ROOT = ../../.. -include $(XEN_ROOT)/tools/Rules.mk +include $(XEN_ROOT)/Config.mk # The HVM loader is started in 32-bit mode at the address below: LOADADDR = 0x100000 @@ -29,9 +29,13 @@ XENINC =-I$(XEN_ROOT)/tools/libxc OBJECTS = hvmloader.o acpi_madt.o -CC = gcc +# Disable PIE/SSP if GCC supports them. They can break us. +CFLAGS += $(call test-gcc-flag,$(CC),-nopie) +CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector) +CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector-all) + OBJCOPY = objcopy -CFLAGS = $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float +CFLAGS += $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float CFLAGS += -m32 -march=i686 LDFLAGS = -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,$(LOADADDR) diff --git a/tools/firmware/vgabios/Makefile b/tools/firmware/vgabios/Makefile index b1568c248b..2b27e01f7c 100644 --- a/tools/firmware/vgabios/Makefile +++ b/tools/firmware/vgabios/Makefile @@ -1,6 +1,4 @@ CC = gcc -CFLAGS = -g -O2 -Wall -Wstrict-prototypes -LDFLAGS = GCC = gcc BCC = bcc diff --git a/tools/firmware/vmxassist/Makefile b/tools/firmware/vmxassist/Makefile index 4f84410132..814bf16396 100644 --- a/tools/firmware/vmxassist/Makefile +++ b/tools/firmware/vmxassist/Makefile @@ -19,7 +19,7 @@ # XEN_ROOT = ../../.. -include $(XEN_ROOT)/tools/Rules.mk +include $(XEN_ROOT)/Config.mk # The emulator code lives in ROM space TEXTADDR=0x000D0000 @@ -27,11 +27,14 @@ TEXTADDR=0x000D0000 DEFINES=-DDEBUG -DTEXTADDR=$(TEXTADDR) XENINC=-I$(XEN_ROOT)/tools/libxc -LD = ld -CC = gcc +# Disable PIE/SSP if GCC supports them. They can break us. +CFLAGS += $(call test-gcc-flag,$(CC),-nopie) +CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector) +CFLAGS += $(call test-gcc-flag,$(CC),-fno-stack-protector-all) + CPP = cpp -P OBJCOPY = objcopy -p -O binary -R .note -R .comment -R .bss -S --gap-fill=0 -CFLAGS = $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float +CFLAGS += $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float CFLAGS += -m32 -march=i686 LDFLAGS = -m elf_i386 diff --git a/tools/ioemu/Makefile b/tools/ioemu/Makefile index d99da37ef4..0cb6ab5e5d 100644 --- a/tools/ioemu/Makefile +++ b/tools/ioemu/Makefile @@ -1,6 +1,9 @@ +XEN_ROOT=../.. +include $(XEN_ROOT)/tools/Rules.mk + -include config-host.mak -CFLAGS=-Wall -O2 -g -fno-strict-aliasing +CFLAGS+=-Wall -O2 -g -fno-strict-aliasing ifdef CONFIG_DARWIN CFLAGS+= -mdynamic-no-pic endif diff --git a/tools/ioemu/target-i386-dm/Makefile b/tools/ioemu/target-i386-dm/Makefile index 171516c809..ac2774f14f 100644 --- a/tools/ioemu/target-i386-dm/Makefile +++ b/tools/ioemu/target-i386-dm/Makefile @@ -1,8 +1,9 @@ -XEN_ROOT=../../.. -include $(XEN_ROOT)/tools/Rules.mk include config.mak override TARGET_ARCH=i386 +XEN_ROOT=../../.. +include $(XEN_ROOT)/tools/Rules.mk + INSTALL_DIR := $(DESTDIR)/usr/$(LIBDIR)/xen/bin TARGET_PATH=$(SRC_PATH)/target-$(TARGET_ARCH) VPATH=$(SRC_PATH):$(TARGET_PATH):$(SRC_PATH)/hw:$(SRC_PATH)/audio @@ -12,7 +13,7 @@ ifdef CONFIG_USER_ONLY VPATH+=:$(SRC_PATH)/linux-user DEFINES+=-I$(SRC_PATH)/linux-user -I$(SRC_PATH)/linux-user/$(TARGET_ARCH) endif -CFLAGS=-Wall -O2 -g -fno-strict-aliasing +CFLAGS+=-Wall -O2 -g -fno-strict-aliasing LDFLAGS=-g LIBS= HELPER_CFLAGS=$(CFLAGS) diff --git a/tools/tests/Makefile b/tools/tests/Makefile index 015e8ae256..99b6b20408 100644 --- a/tools/tests/Makefile +++ b/tools/tests/Makefile @@ -4,13 +4,12 @@ include $(XEN_ROOT)/tools/Rules.mk TARGET := test_x86_emulator -CC := gcc -CFLAGS := -O2 -Wall -Werror -D__TEST_HARNESS__ +HOSTCFLAGS += -D__TEST_HARNESS__ all: $(TARGET) $(TARGET): x86_emulate.o test_x86_emulator.o - $(CC) -o $@ $^ + $(HOSTCC) -o $@ $^ clean: rm -rf $(TARGET) *.o *~ core @@ -18,7 +17,7 @@ clean: install: x86_emulate.o: $(XEN_ROOT)/xen/arch/x86/x86_emulate.c - $(CC) $(CFLAGS) -I$(XEN_ROOT)/xen/include -c -o $@ $< + $(HOSTCC) $(HOSTCFLAGS) -I$(XEN_ROOT)/xen/include -c -o $@ $< %.o: %.c - $(CC) $(CFLAGS) -I$(XEN_ROOT)/xen/include -c -o $@ $< + $(HOSTCC) $(HOSTCFLAGS) -I$(XEN_ROOT)/xen/include -c -o $@ $< -- 2.30.2